#pragma once
#include"grid.h"
class Grid;
//grid element
class GridElement
{
public:
	GridElement() {};
	GridElement(const GridElement& elemet);
	GridElement( Grid* parent, const vector<size_t>& coord_index) :parent_(parent), nodeIndexVec_(coord_index) {};
public:
	void SetFaceIndex(vector<size_t>& face_index) { faceIndexVec_ = face_index; }
public:
	vector<size_t>* GetNodeIndexVec() { return &nodeIndexVec_; }
	vector<size_t>* GetFaceIndexVec() { return &faceIndexVec_; }
	vector< Point*>GetNodeCoord();
	int GetNodeNumber()const { return nodeIndexVec_.size(); }
private:
	// the grid this element belong
	 Grid* parent_;
	// the nodes this element contain
	vector<size_t>nodeIndexVec_;
	// the faces this element contain
	vector<size_t>faceIndexVec_;
};